#lang racket


(provide visitor%)

(define visitor%
  (interface ()
    ; points
    visit-point

    ; lines
    visit-arc
    visit-elliptical-arc
    visit-ellipse
    visit-line
    visit-nurbs-curve
    visit-spline

    ; surfaces
    visit-annulus
    visit-ngon
    visit-nurbs-surface
    visit-star
    visit-surface

    ; solids
    visit-box
    visit-cone
    visit-cone-frustum
    visit-cylinder
    visit-pyramid
    visit-sphere

    ; generic shapes
    visit-circle
    visit-rectangle

    ; text
    visit-text

    ; transformations
    visit-extrude
    visit-intersect
    visit-join
    visit-loft
    visit-move
    visit-offset
    visit-rotate
    visit-scale
    visit-section
    visit-slice
    visit-subtract
    visit-sweep
    visit-thicken
    visit-union

    ; lang
    visit-align
    visit-lift
    visit-on
    visit-sequence

    ; cad
    visit-layer
    visit-view))